home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_jade.idb / usr / freeware / include / sp / lib / Partition.h.z / Partition.h
Encoding:
C/C++ Source or Header  |  1999-07-21  |  1.3 KB  |  75 lines

  1. // Copyright (c) 1994 James Clark
  2. // See the file COPYING for copying permission.
  3.  
  4. #ifndef Partition_INCLUDED
  5. #define Partition_INCLUDED 1
  6. #ifdef __GNUG__
  7. #pragma interface
  8. #endif
  9.  
  10. #include "types.h"
  11. #include "SubstTable.h"
  12. #include "StringOf.h"
  13. #include "ISet.h"
  14. #include "XcharMap.h"
  15. #include "Vector.h"
  16.  
  17. #ifdef SP_NAMESPACE
  18. namespace SP_NAMESPACE {
  19. #endif
  20.  
  21. class Partition {
  22. public:
  23.   Partition(const ISet<Char> &chars,
  24.         const ISet<Char> **sets,
  25.         int nSets,
  26.         const SubstTable<Char> &subst);
  27.   EquivCode maxCode() const;
  28.   EquivCode charCode(Char c) const;
  29.   EquivCode eECode() const;
  30.   const String<EquivCode> &setCodes(int i) const;
  31.   const XcharMap<EquivCode> &map() const;
  32. private:
  33.   Partition(const Partition &);    // undefined
  34.   void operator=(const Partition &); // undefined
  35.   EquivCode maxCode_;
  36.   Vector<String<EquivCode> > setCodes_;
  37.   XcharMap<EquivCode> map_;
  38. };
  39.  
  40. inline
  41. EquivCode Partition::maxCode() const
  42. {
  43.   return maxCode_;
  44. }
  45.  
  46. inline
  47. EquivCode Partition::charCode(Char c) const
  48. {
  49.   return map_[c];
  50. }
  51.  
  52. inline
  53. EquivCode Partition::eECode() const
  54. {
  55.   return 0;
  56. }
  57.  
  58. inline
  59. const String<EquivCode> &Partition::setCodes(int i) const
  60. {
  61.   return setCodes_[i];
  62. }
  63.  
  64. inline
  65. const XcharMap<EquivCode> &Partition::map() const
  66. {
  67.   return map_;
  68. }
  69.  
  70. #ifdef SP_NAMESPACE
  71. }
  72. #endif
  73.  
  74. #endif /* not Partition_INCLUDED */
  75.